// pages/patientDetail/index.js
const api = require('../../config/api')
const request = require('../../utils/request')
const app = getApp()
const { stringify } = require('../../utils/util')
Page({
  /**
   * 页面的初始数据
   */
  data: {
    patientInfo: '',
    isDefault: '',
    isOpen: false, // 默认收起
    trainingList: [], // 场景训练列表
    listType: 1,
    qrCodeDialogShow: false, //二维码弹窗
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options.isBindOne)
    this.setData({
      isDefault: options.isDefault,
      id: options.id,
      isBindOne: options.isBindOne,
    })
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    let { id } = this.data
    this.getPatientDetial(id)
    this.getTrainingList(id)
  },

  getPatientDetial: async function (id) {
    const res = await request.get(api.patientDetail + '/' + id)
    if (res.httpStatus === 200) {
      res.data.birthday = res.data.birthday.substring(0, 10)
      this.setData({
        patientInfo: res.data,
      })
    }
  },
  async getTrainingList(id) {
    const res = await request.get(api.currentPatientTraining, { patientId: id })
    if (res.httpStatus === 200) {
      this.setData({
        trainingList: res.data,
      })
    }
  },
  // 设置默认患者
  setDefault: async function () {
    const userId = wx.getStorageSync('userId')
    const data = {
      patientId: this.data.patientInfo.id,
      userId: userId,
    }
    const res = await request.post(api.setDefault, data)
    if (res.httpStatus === 200) {
      this.setData({
        isDefault: '1',
      })
      app.getPatientList()
      wx.showToast({
        title: '设置成功',
      })
    }
  },
  // 点击取消绑定
  unBind: async function () {
    const that = this
    const userId = wx.getStorageSync('userId')
    const data = {
      patientId: that.data.patientInfo.id,
      userId: userId,
    }

    const res = await request.post(api.isCanbind, data)
    if (res.httpStatus === 200 && !res.data) {
      wx.showModal({
        content: '与孩子解除绑定后将不能查看该孩子的信息，确认要解除吗？',
        cancelText: '取消', //默认是“取消”
        confirmText: '确认', //默认是“确定”
        success: function (res) {
          if (res.cancel) {
            //点击取消,默认隐藏弹框
          } else {
            //点击确定
            that.unBindPatient(data)
          }
        },
        fail: function (res) {}, //接口调用失败的回调函数
        complete: function (res) {}, //接口调用结束的回调函数（调用成功、失败都会执行）
      })
    } else {
      wx.showModal({
        content: '不能解除绑定，当前孩子有未到期的预约就诊信息',
        showCancel: false,
        confirmText: '好的',
        success: function (res) {},
        fail: function (res) {}, //接口调用失败的回调函数
        complete: function (res) {}, //接口调用结束的回调函数（调用成功、失败都会执行）
      })
    }
  },
  // 解除绑定
  unBindPatient: async function (data) {
    const res = await request.post(api.unbind, data)
    if (res.httpStatus === 200) {
      app.getPatientList()
      setTimeout(function () {
        wx.navigateBack({
          delta: 1,
        })
      }, 1000)
    }
  },
  // 编辑患者
  edit() {
    const id = {
      id: this.data.patientInfo.id,
    }
    wx.navigateTo({
      url: `/pages/createPatient/create/create?patientInfo=${stringify(id)}`,
    })
  },
  // 点击查看路径跳转路径详情
  handlePathDetail(val) {
    wx.navigateTo({
      url: `/pages/pathDetail/index?id=${val.currentTarget.dataset.id}`,
    })
  },
  // 	全部训练
  handleAllScene() {
    wx.navigateTo({
      url: '/pages/sceneTrain/index?patientId=' + this.data.id,
    })
  },
  // 弹出二维码弹窗
  handleShowQrcode() {
    this.setData({
      qrCodeDialogShow: true,
    })
  },
  // 关闭二维码弹窗
  handleCloseModal() {
    this.setData({
      qrCodeDialogShow: false,
    })
  },
  // 复制档案号
  handleCopy() {
    wx.setClipboardData({
      data: this.data.patientInfo?.number.toString(),
      success: function (res) {
        wx.showToast({
          title: '复制成功',
          icon: 'success',
        })
      },
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {},
})
